package ar.edu.utn.frba.tacs.warnes.utils;

import java.util.ArrayList;
import java.util.List;

import ar.edu.utn.frba.tacs.warnes.Auto;
import ar.edu.utn.frba.tacs.warnes.Pieza;
import ar.edu.utn.frba.tacs.warnes.utils.ConstantesWarnes.Categoria;

public class ContenedorWarnes {

	private static ContenedorWarnes instancia;
	private List<Pieza> piezas = new ArrayList<Pieza>();
	private List<Auto> autos = new ArrayList<Auto>();

	public static ContenedorWarnes getInstance() {
		if (instancia == null) {
			instancia = new ContenedorWarnes();
		}
		return instancia;
	}
	
	public void setPiezas(List<Pieza> piezas) {
		this.piezas = piezas;
	}

	public List<Pieza> getPiezas() {
		return piezas;
	}

	private void addPieza(Pieza pieza) {
		if (piezas == null) {
			piezas = new ArrayList<Pieza>();
		}
		this.piezas.add(pieza);
	}

	public Pieza creaUnaPieza() {
		Pieza pieza = new Pieza();
		this.addPieza(pieza);
		return pieza;
	}

	public List<Pieza> getPiezaPorCategoria(Categoria partes) {
		List<Pieza> piezasBuscadas = new ArrayList<Pieza>();
		for (Pieza pieza : this.piezas) {
			if (partes.equals(pieza.getCategoria())) {
				piezasBuscadas.add(pieza);
			}
		}
		return piezasBuscadas;
	}

	public void setAutos(List<Auto> autos) {
		this.autos = autos;
	}

	public List<Auto> getAutos() {
		return autos;
	}

	private void addAuto(Auto auto) {
		if (autos == null) {
			autos = new ArrayList<Auto>();
		}
		this.autos.add(auto);
	}
	
	public Auto creaUnAuto() {
		Auto auto = new Auto();
		this.addAuto(auto);
		return auto;
	}

	public void limpiate() {
		piezas = new ArrayList<Pieza>();
		autos = new ArrayList<Auto>();
	}

}
